package com.ruoyi.system.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 商品借出单(es_lend_form)对象 es_lend_form
 *
 * @author ruoyi
 * @date 2025-03-06
 */
public class EsLendForm extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 借出单编号 */
    @Excel(name = "借出单编号")
    private String sn;

    /** 借出单状态 */
    @Excel(name = "借出单状态")
    private int status;

    /** 部门ID */
    @Excel(name = "部门ID")
    private Long deptId;

    /** 部门名称 */
    @Excel(name = "部门名称")
    private String deptName;

    /** 仓库ID */
    @Excel(name = "仓库ID")
    private Long warehouseId;

    /** 仓库名称 */
    @Excel(name = "仓库名称")
    private String warehouseName;

    /** 借出人ID */
    @Excel(name = "借出人ID")
    private Long lendPersonId;

    /** 借出人 */
    @Excel(name = "借出人")
    private String lendPerson;

    /** 借出登记人ID */
    @Excel(name = "借出登记人ID")
    private Long lendRegisterId;

    /** 借出登记人 */
    @Excel(name = "借出登记人")
    private String lendRegister;

    /** 借出时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "借出时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lendTime;

    /** 借出说明 */
    @Excel(name = "借出说明")
    private String lendDesc;

    /** 归还人ID */
    @Excel(name = "归还人ID")
    private Long returnPersonId;

    /** 归还人 */
    @Excel(name = "归还人")
    private String returnPerson;

    /** 归还登记人ID */
    @Excel(name = "归还登记人ID")
    private Long returnRegisterId;

    /** 归还登记人 */
    @Excel(name = "归还登记人")
    private String returnRegister;

    /** 归还时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "归还时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date returnTime;

    /** 归还说明 */
    @Excel(name = "归还说明")
    private String returnDesc;

    /** 确认时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "确认时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date confirmTime;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setSn(String sn)
    {
        this.sn = sn;
    }

    public String getSn()
    {
        return sn;
    }
    public void setStatus(int status)
    {
        this.status = status;
    }

    public int getStatus()
    {
        return status;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setDeptName(String deptName)
    {
        this.deptName = deptName;
    }

    public String getDeptName()
    {
        return deptName;
    }
    public void setWarehouseId(Long warehouseId)
    {
        this.warehouseId = warehouseId;
    }

    public Long getWarehouseId()
    {
        return warehouseId;
    }
    public void setWarehouseName(String warehouseName)
    {
        this.warehouseName = warehouseName;
    }

    public String getWarehouseName()
    {
        return warehouseName;
    }
    public void setLendPersonId(Long lendPersonId)
    {
        this.lendPersonId = lendPersonId;
    }

    public Long getLendPersonId()
    {
        return lendPersonId;
    }
    public void setLendPerson(String lendPerson)
    {
        this.lendPerson = lendPerson;
    }

    public String getLendPerson()
    {
        return lendPerson;
    }
    public void setLendRegisterId(Long lendRegisterId)
    {
        this.lendRegisterId = lendRegisterId;
    }

    public Long getLendRegisterId()
    {
        return lendRegisterId;
    }
    public void setLendRegister(String lendRegister)
    {
        this.lendRegister = lendRegister;
    }

    public String getLendRegister()
    {
        return lendRegister;
    }
    public void setLendTime(Date lendTime)
    {
        this.lendTime = lendTime;
    }

    public Date getLendTime()
    {
        return lendTime;
    }
    public void setLendDesc(String lendDesc)
    {
        this.lendDesc = lendDesc;
    }

    public String getLendDesc()
    {
        return lendDesc;
    }
    public void setReturnPersonId(Long returnPersonId)
    {
        this.returnPersonId = returnPersonId;
    }

    public Long getReturnPersonId()
    {
        return returnPersonId;
    }
    public void setReturnPerson(String returnPerson)
    {
        this.returnPerson = returnPerson;
    }

    public String getReturnPerson()
    {
        return returnPerson;
    }
    public void setReturnRegisterId(Long returnRegisterId)
    {
        this.returnRegisterId = returnRegisterId;
    }

    public Long getReturnRegisterId()
    {
        return returnRegisterId;
    }
    public void setReturnRegister(String returnRegister)
    {
        this.returnRegister = returnRegister;
    }

    public String getReturnRegister()
    {
        return returnRegister;
    }
    public void setReturnTime(Date returnTime)
    {
        this.returnTime = returnTime;
    }

    public Date getReturnTime()
    {
        return returnTime;
    }
    public void setReturnDesc(String returnDesc)
    {
        this.returnDesc = returnDesc;
    }

    public String getReturnDesc()
    {
        return returnDesc;
    }
    public void setConfirmTime(Date confirmTime)
    {
        this.confirmTime = confirmTime;
    }

    public Date getConfirmTime()
    {
        return confirmTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("sn", getSn())
            .append("status", getStatus())
            .append("deptId", getDeptId())
            .append("deptName", getDeptName())
            .append("warehouseId", getWarehouseId())
            .append("warehouseName", getWarehouseName())
            .append("lendPersonId", getLendPersonId())
            .append("lendPerson", getLendPerson())
            .append("lendRegisterId", getLendRegisterId())
            .append("lendRegister", getLendRegister())
            .append("lendTime", getLendTime())
            .append("lendDesc", getLendDesc())
            .append("returnPersonId", getReturnPersonId())
            .append("returnPerson", getReturnPerson())
            .append("returnRegisterId", getReturnRegisterId())
            .append("returnRegister", getReturnRegister())
            .append("returnTime", getReturnTime())
            .append("returnDesc", getReturnDesc())
            .append("createTime", getCreateTime())
            .append("confirmTime", getConfirmTime())
            .toString();
    }

    /** 商品明细列表 */
    private List<EsLendFormProduct> productList;

    // 添加getter和setter方法
    public List<EsLendFormProduct> getProductList() {
        return productList;
    }

    public void setProductList(List<EsLendFormProduct> productList) {
        this.productList = productList;
    }
}
